Книга JavaScript/Спецификация языка
Под спецификацией языка программирования понимается стандартизация его синтаксиса и семантики. Как не зная алфавита и построения предложений, бессмысленно изучение естественного языка, так же бессмысленно дальнейшее изучение JavaScript без представленных в этой главе сведений.
Переменные
[править]Переменные в JavaScript назначаются двумя способами:
1. С помощью оператора «=»: ''переменная'' = ''значение''. Пример:
x = 1; // переменной x задаётся значение 1
2. С помощью ключевого слова var и оператора «=»: var ''переменная'' или var ''переменная'' = ''значение''. Пример:
var x;
x = 1;
// или
var x = 1;
Второй способ отличается от первого тем, что можно назначать сразу несколько переменных:
var x = 1, y = 2;
А так же тем, что второй способ определяет значение переменной только в своём блоке кода. Если присвоить значение переменной, не объявленной с помощью инструкции var, JavaScript неявно объявит эту переменную за вас. Однако переменные, объявленные таким образом, всегда создаются как глобальные, даже если они работают только в теле функции.
В именах переменных могут использоваться латинские буквы (a…z, A…Z), цифры (0…9), знак доллара ($) и знак подчёркивания (_), при этом нельзя использовать цифру первой. Необходимо помнить, что JavaScript — регистрозависимый язык, и переменные X и x, будут считаться различными.
Операторы
[править]Комментарии
[править]Для того, чтобы интерпретатор игнорировал часть программного кода, например, пояснения, используют специальные операторы.
1. Оператор «//» используют, чтобы текст, расположенный справа от оператора до конца строки, сделать комментарием: ''программа'' // ''комментарий''. Пример:
x = 3; // Присвоение переменной x значения 3
y = 5; // Присвоение переменной y значения 5
2. Операторы «/*» и «*/» используют, чтобы текст расположенный внутри операторов сделать комментарием: ''программа'' /* ''комментарий'' */ ''программа''. Пример:
x = 3; /* Присвоение переменной x значения 3,
а переменной y — 5: */
y = 5;
Арифметические
[править]Арифметические операции производятся только с данными одного типа. JavaScript способен сам определять тип данных, однако не стоит уповать на него — рекомендуется самостоятельно следить за их типом.
Существует 3 типа данных:
- строковый (string) — определяется двойными или одинарными кавычками и используется для символьных данных,
- числовой (number) — определяется отсутствием кавычек и используется для чисел (не символов),
- логический (boolean) — определяется отсутствием кавычек и используется для значений true (1) или false (0).
Также существуют специальные типы данных:
- null — отсутствие данных,
- undefined – не определено,
- массив (array),
- объект (object) — программный объект (ссылка на него),
- функция (function) — определение функции.
Оператор | Название | Пример | Результат |
---|---|---|---|
+ | Сложение | x + y | Сложение двух чисел или склеивание двух строк |
- | Вычитание | x - y | Вычитание y из x или удаление строки y из строки х |
* | Умножение | x * y | Перемножение двух чисел |
/ | Деление | x / y | Деление числа x на число y |
% | Деление по модулю (остаток) | x % y | Остаток от деления числа x на число y |
++ | Инкремент (увеличение на 1) | x++ | Эквивалентно x+1 |
-- | Декремент (уменьшение на 1) | x-- | Эквивалентно x-1 |
Примеры использования:
6 + 3; // результат 9
6 - 3; // результат 3
6 * 3; // результат 18
6 / 3; // результат 2
5 % 3; // результат 2
6++; // результат 7
6--; // результат 5
Можно использовать и с переменными:
x = 3; // значение x — 3
y = 5; // значение y — 5
z = x + y; // значение z — 8
Возможно использование в выражениях со скобками:
4 + 5 * 2; // результат 14
(4 + 5) * 2; // результат 18
В арифметических операциях логические значения считаются: true — 1, false — 0:
5 + true; // результат 6
5 + false; // результат 5
4 * true; // результат 4
4 * false; // результат 0
true + true; // результат 2
true + false; // результат 1
Оператор сложения можно использовать для склейки строк:
"Java" + "Script"; // результат "JavaScript"
a = "Java";
b = "Script";
a + b; // результат "JavaScript"
"Уровень" + 5; // результат "Уровень5"
"Уровень" + true; // результат "Уровеньtrue"
"1" + "2"; // результат "12"
Другие арифметические операторы со строками дают значение NaN:
"J" * 5; // результат NaN
"J" - 5; // результат NaN
"J" - "J"; // результат NaN
Если вы не знаете, то NaN — это значение переменной, когда совершается неккоректное действие, например a = 1 * "Hello! ". NaN не равен ни одному числу, даже самому себе.
Основные конструкции
[править]Сами по себе синтаксические конструкции бесполезны, поэтому для их использования следует знать встроенные функции.
Функции
[править]JavaScript как и многие другие языки программирования построен на функциях. Синтаксис:
function <имя_функции> (<параметры>) {
<операторы>;
return <возвращаемое_значение>;
}
Оператор return возвращает значение, в следующем примере это будет показано. Параметры (или аргументы) это такие переменные, значение которых мы задаём при вызове функции:
function plus(a,b) {
return (a + b); // Мы возвращаем сумму параметров a и b.
}
var c = plus(1,2); // Переменная c получит значение 3.
Условия
[править]Условия позволяют выполнить один или несколько операторов только при выполнении определённого условия. Синтаксис:
if(<условие>) {
<операторы>;
}
else { // Иначе, т. е. если условие не выполнилось.
<операторы>;
}
Циклы
[править]while (цикл с предусловием)
[править]Цикл будет продолжаться до того момента, когда условия перестанут выполняться. Синтаксис:
while(<условие>) {
<операторы>;
}
do…while (цикл с постусловием).
[править]Цикл do…while отличается от while только тем, что условие проверяется в конце выполнения блока, соответственно он выполнится минимум 1 раз. Синтаксис:
do {
<операторы>;
}
while(<условие>)
for (итерационный цикл, счётчик)
[править]Синтаксис:
for(var <переменная> = <начальное_значение>; <условие>; <шаг_цикла>) {
<операторы>;
}
В циклах for создаётся отдельная переменная, задаётся условие с этой переменной, при котором будет продолжаться выполнение цикла. И при каждом выполнении производится какая-либо операция. Например:
for(var i = 0; i < 10; i++) {
<операторы>; // повторяется 10 раз
}
Подробное разъяснение: создаётся переменная i и цикл выполняется пока i меньше или равно 10, и при каждой итерации (т.е. одном выполнении цикла) к переменной i прибавляется 1 (инкремент), соответственно цикл выполнится 10 раз.
Переключатели
[править]Переключатели позволяют сравнить одну переменную с большим количеством констант, хотя их можно заменить простыми условиями. Но переключатели более лаконичны. Синтаксис:
var a;
switch(a) {
case 1: // Если a = 1
<операторы>;
break;
case 2: // Если a = 2
<операторы>;
break;
default: // остальные значения
<операторы>;
break;
}
case сравнивает переменную, указанную в switch(переменная). break прерывает выполнение case или default, т. е. если он будет отсутствовать при выполнении хотя бы первого case, выполнятся все последующие и defalult. default выполнится только если ни один из операторов case.